<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>顶部固定导航栏</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        body{
            height: 3000px;
        }
        .top1{
            width: 100%;
            height: 300px;
            background-color: red;
        }
        .top2{
            width: 100%;
            height: 200px;
            background-color: green;
        }
        .top3{
            width: 100%;
            height: 200px;
            background-color: blue;
        }
    </style>
</head>
<body>
    <div class="top1"></div>
    <div class="top2"></div>
    <div class="top3"></div>
</body>
<script src="jquery-3.3.1.min.js"></script>
<script>
    $(function () {
        var topHeight2 = $('.top2').height();
        $(window).scroll(function () {
            // 获取页面滚动距离
            var scrollTop = $(this).scrollTop();
            if (scrollTop >= $('.top1').height()){
                $('.top2').css({
                    position: 'fixed',
                    top:0
                });
                // 设置第三部分margin-top的值为第二部分的高度
                $('.top3').css({
                    marginTop: topHeight2
                })
            } else {
                // 第二部分的定位还原
                $('.top2').css({
                    position: 'static',
                });
                $('.top3').css({
                    marginTop: 0
                })
            }
        })
    })
</script>
</html>